package com.story.api.moduler.user.dao;

import com.story.api.common.persistence.model.UserLogin;
import org.apache.ibatis.annotations.Param;

/**
 * <p>
  * 用户登录表 Mapper 接口
 * </p>
 *
 * @author yangbo
 * @since 2017-12-14
 */
public interface UserLoginDao {

    /**
     * 新增用户登录数据
     * @param userLogin
     * @return
     */
    int saveUserLogin(@Param("userLogin") UserLogin userLogin);

    /**
     * 登录验证
     * @param identifiler
     * @param credential
     * @return
     */
    int userLogin(@Param("identifier") String identifiler,
                  @Param("credential") String credential,
                  @Param("identifyType") String identifyType);

    /**
     * 根据凭据得到userId
     * @param identifiler
     * @param credential
     * @param identifyType
     * @return
     */
    int getUserIdByCredential(@Param("identifier") String identifiler,
                              @Param("credential") String credential,
                              @Param("identifyType") String identifyType);

    /**
     * 查询该手机号是否存在
     * @param phoneNum
     * @return
     */
    int existPhone(@Param("phoneNum") String phoneNum);

    /**
     * 修改密码
     * @param identifier
     * @param password
     * @return
     */
    void updatePassword(@Param("identifier") String identifier,
                        @Param("password") String password);

    /**
     * 根据手机号得到用户id(主要用户短信登录)
     * @param identifier
     * @return
     */
    Integer getUserIdByPhone(@Param("identifier") String identifier);

    /**
     * 校验旧密码
     * @param userId
     * @param password
     * @return
     */
    int checkOldPassword(@Param("userId") Integer userId,
                         @Param("password") String password);

    /**
     * 修改密码
     * @param userId
     * @param password
     */
    void updatePwdByUserId(@Param("userId") Integer userId,
                           @Param("password") String password);

}